#ifndef _M_LOG_DEPLOY_H_
#define _M_LOG_DEPLOY_H_
#include "m_types.h"

/**
 * 日志模式枚举值
 */
typedef enum MLogModeTag {
    kMLogModeSync,   // 同步
    kMLogModeAsync,  // 异步
} MLogMode;

typedef Int32 (*MLogPrintFunc)(void* user, UInt8* print_buf, Int32 print_size);

/**
 * @brief 日志初始化
 *
 * @param user: 用户指针，用于 MLogPrintFunc 调用
 * @param print_func: 回调函数，当日志产生时主动调用，用于日志的显示或存储
 * @param mode: 日志模式 同步:日志产生时直接回调；异步: 日志产生时入队列，调度时回调
 * @return 执行结果 详见 TMErrCode
*/
Int32 MLogServerInit(void* user, MLogPrintFunc print_func, MLogMode mode);

/**
 * @brief 日志去初始化
 *
 * @return 执行结果 详见 TMErrCode
*/
Int32 MLogServerFini(void);

/**
 * @brief 日志调度
 *
 * @param cur_ticks: 当前tick
*/
void MLogServerRunOnce(UInt32 cur_ticks);


#endif  // _M_LOG_DEPLOY_H_
